from collections import defaultdict
from skidl import Pin, Part, Alias, SchLib, SKIDL, TEMPLATE

from skidl.pin import pin_types

SKIDL_lib_version = '0.0.1'

MCU_WCH_CH32V3 = SchLib(tool=SKIDL).add_parts(*[
        Part(**{ 'name':'CH32V30xCxTx', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'CH32V30xCxTx'}), 'ref_prefix':'U', 'fplist':['Package_QFP:LQFP-48_7x7mm_P0.5mm'], 'footprint':'Package_QFP:LQFP-48_7x7mm_P0.5mm', 'keywords':'RISC-V WCH MCU', 'description':'', 'datasheet':'http://www.wch-ic.com/products/CH32V307.html?', 'search_text':'/usr/share/kicad/symbols/MCU_WCH_CH32V3.kicad_sym\nCH32V30xCxTx\n\nRISC-V WCH MCU', 'pins':[
            Pin(num='1',name='VBAT',func=pin_types.PWRIN),
            Pin(num='23',name='VSS',func=pin_types.PWRIN),
            Pin(num='24',name='VDD',func=pin_types.PWRIN),
            Pin(num='44',name='BOOT0',func=pin_types.INPUT),
            Pin(num='8',name='VSSA',func=pin_types.PWRIN),
            Pin(num='9',name='VDDA',func=pin_types.PWRIN),
            Pin(num='10',name='PA0',func=pin_types.BIDIR,unit=1),
            Pin(num='11',name='PA1',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='PA2',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='PA3',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='PA4',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='PA5',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='PA6',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='PA7',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='PB0',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='PB1',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='PC13',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='PB2',func=pin_types.BIDIR,unit=1),
            Pin(num='21',name='PB10',func=pin_types.BIDIR,unit=1),
            Pin(num='22',name='PB11',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='PB12',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='PB13',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='PB14',func=pin_types.BIDIR,unit=1),
            Pin(num='28',name='PB15',func=pin_types.BIDIR,unit=1),
            Pin(num='29',name='PA8',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='PC14',func=pin_types.BIDIR,unit=1),
            Pin(num='30',name='PA9',func=pin_types.BIDIR,unit=1),
            Pin(num='31',name='PA10',func=pin_types.BIDIR,unit=1),
            Pin(num='32',name='PA11',func=pin_types.BIDIR,unit=1),
            Pin(num='33',name='PA12',func=pin_types.BIDIR,unit=1),
            Pin(num='34',name='SWDIO',func=pin_types.BIDIR,unit=1),
            Pin(num='35',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='36',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='37',name='SWCLK',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='PA15',func=pin_types.BIDIR,unit=1),
            Pin(num='39',name='PB3',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='PC15',func=pin_types.BIDIR,unit=1),
            Pin(num='40',name='PB4',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='PB5',func=pin_types.BIDIR,unit=1),
            Pin(num='42',name='PB6',func=pin_types.BIDIR,unit=1),
            Pin(num='43',name='PB7',func=pin_types.BIDIR,unit=1),
            Pin(num='45',name='PB8',func=pin_types.BIDIR,unit=1),
            Pin(num='46',name='PB9',func=pin_types.BIDIR,unit=1),
            Pin(num='47',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='48',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='5',name='OSC_IN',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='OSC_OUT',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='~{RST}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'CH32V30xFxPx', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'CH32V30xFxPx'}), 'ref_prefix':'U', 'fplist':['Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm'], 'footprint':'Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm', 'keywords':'RISC-V WCH MCU', 'description':'', 'datasheet':'http://www.wch-ic.com/products/CH32V307.html?', 'search_text':'/usr/share/kicad/symbols/MCU_WCH_CH32V3.kicad_sym\nCH32V30xFxPx\n\nRISC-V WCH MCU', 'pins':[
            Pin(num='1',name='~{RST}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='PC7',func=pin_types.BIDIR,unit=1),
            Pin(num='11',name='PC8',func=pin_types.BIDIR,unit=1),
            Pin(num='12',name='PA8/PC9',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='SWDIO',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='VDD33',func=pin_types.PWRIN,unit=1),
            Pin(num='15',name='SWCLK',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='PB6',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='PB7',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='VSS',func=pin_types.PWRIN,unit=1),
            Pin(num='19',name='OSC_IN',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='PA1/PA5',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='OSC_OUT',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='PB10',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='PB11',func=pin_types.BIDIR,unit=1),
            Pin(num='5',name='PB12',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='PB13',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='PB14',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='PB15',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='PC6',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'CH32V30xRxTx', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'CH32V30xRxTx'}), 'ref_prefix':'U', 'fplist':['Package_QFP:LQFP-64_10x10mm_P0.5mm'], 'footprint':'Package_QFP:LQFP-64_10x10mm_P0.5mm', 'keywords':'RISC-V WCH MCU', 'description':'', 'datasheet':'http://www.wch-ic.com/products/CH32V307.html?', 'search_text':'/usr/share/kicad/symbols/MCU_WCH_CH32V3.kicad_sym\nCH32V30xRxTx\n\nRISC-V WCH MCU', 'pins':[
            Pin(num='1',name='VBAT',func=pin_types.PWRIN),
            Pin(num='12',name='VSSA',func=pin_types.PWRIN),
            Pin(num='13',name='VDDA',func=pin_types.PWRIN),
            Pin(num='18',name='VSS',func=pin_types.PWRIN),
            Pin(num='19',name='VDD',func=pin_types.PWRIN),
            Pin(num='32',name='VIO',func=pin_types.PWRIN),
            Pin(num='10',name='PC2',func=pin_types.BIDIR,unit=1),
            Pin(num='11',name='PC3',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='PA0',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='PA1',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='PA2',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='PA3',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='PC13',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='PA4',func=pin_types.BIDIR,unit=1),
            Pin(num='21',name='PA5',func=pin_types.BIDIR,unit=1),
            Pin(num='22',name='PA6',func=pin_types.BIDIR,unit=1),
            Pin(num='23',name='PA7',func=pin_types.BIDIR,unit=1),
            Pin(num='24',name='PC4',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='PC5',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='PB0',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='PB1',func=pin_types.BIDIR,unit=1),
            Pin(num='28',name='PB2',func=pin_types.BIDIR,unit=1),
            Pin(num='29',name='PB10',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='PC14',func=pin_types.BIDIR,unit=1),
            Pin(num='30',name='PB11',func=pin_types.BIDIR,unit=1),
            Pin(num='31',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='33',name='PB12',func=pin_types.BIDIR,unit=1),
            Pin(num='34',name='PB13',func=pin_types.BIDIR,unit=1),
            Pin(num='35',name='PB14',func=pin_types.BIDIR,unit=1),
            Pin(num='36',name='PB15',func=pin_types.BIDIR,unit=1),
            Pin(num='37',name='PC6',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='PC7',func=pin_types.BIDIR,unit=1),
            Pin(num='39',name='PC8',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='PC15',func=pin_types.BIDIR,unit=1),
            Pin(num='40',name='PC9',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='PA8',func=pin_types.BIDIR,unit=1),
            Pin(num='42',name='PA9',func=pin_types.BIDIR,unit=1),
            Pin(num='43',name='PA10',func=pin_types.BIDIR,unit=1),
            Pin(num='44',name='PA11',func=pin_types.BIDIR,unit=1),
            Pin(num='45',name='PA12',func=pin_types.BIDIR,unit=1),
            Pin(num='46',name='SWDIO',func=pin_types.BIDIR,unit=1),
            Pin(num='47',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='48',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='49',name='SWCLK',func=pin_types.BIDIR,unit=1),
            Pin(num='5',name='OSC_IN',func=pin_types.BIDIR,unit=1),
            Pin(num='50',name='PA15',func=pin_types.BIDIR,unit=1),
            Pin(num='51',name='PC10',func=pin_types.BIDIR,unit=1),
            Pin(num='52',name='PC11',func=pin_types.BIDIR,unit=1),
            Pin(num='53',name='PC12',func=pin_types.BIDIR,unit=1),
            Pin(num='54',name='PD2',func=pin_types.BIDIR,unit=1),
            Pin(num='55',name='PB3',func=pin_types.BIDIR,unit=1),
            Pin(num='56',name='PB4',func=pin_types.BIDIR,unit=1),
            Pin(num='57',name='PB5',func=pin_types.BIDIR,unit=1),
            Pin(num='58',name='PB6',func=pin_types.BIDIR,unit=1),
            Pin(num='59',name='PB7',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='OSC_OUT',func=pin_types.BIDIR,unit=1),
            Pin(num='60',name='BOOT0',func=pin_types.INPUT,unit=1),
            Pin(num='61',name='PB8',func=pin_types.BIDIR,unit=1),
            Pin(num='62',name='PB9',func=pin_types.BIDIR,unit=1),
            Pin(num='63',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='64',name='VIO',func=pin_types.PASSIVE,unit=1),
            Pin(num='7',name='~{RST}',func=pin_types.INPUT,unit=1),
            Pin(num='8',name='PC0',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='PC1',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'CH32V30xVxTx', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'CH32V30xVxTx'}), 'ref_prefix':'U', 'fplist':['Package_QFP:LQFP-100_14x14mm_P0.5mm'], 'footprint':'Package_QFP:LQFP-100_14x14mm_P0.5mm', 'keywords':'RISC-V WCH MCU', 'description':'', 'datasheet':'http://www.wch-ic.com/products/CH32V307.html?', 'search_text':'/usr/share/kicad/symbols/MCU_WCH_CH32V3.kicad_sym\nCH32V30xVxTx\n\nRISC-V WCH MCU', 'pins':[
            Pin(num='10',name='VSS',func=pin_types.PWRIN),
            Pin(num='11',name='VDD',func=pin_types.PWRIN),
            Pin(num='12',name='OSC_IN',func=pin_types.BIDIR),
            Pin(num='13',name='OSC_OUT',func=pin_types.BIDIR),
            Pin(num='19',name='VSSA',func=pin_types.PWRIN),
            Pin(num='20',name='VREF-',func=pin_types.INPUT),
            Pin(num='21',name='VREF+',func=pin_types.INPUT),
            Pin(num='22',name='VDDA',func=pin_types.PWRIN),
            Pin(num='50',name='VIO',func=pin_types.PWRIN),
            Pin(num='6',name='VBAT',func=pin_types.PWRIN),
            Pin(num='1',name='PE2',func=pin_types.BIDIR,unit=1),
            Pin(num='100',name='VIO',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='~{RST}',func=pin_types.INPUT,unit=1),
            Pin(num='15',name='PC0',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='PC1',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='PC2',func=pin_types.BIDIR,unit=1),
            Pin(num='18',name='PC3',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='PE3',func=pin_types.BIDIR,unit=1),
            Pin(num='23',name='PA0',func=pin_types.BIDIR,unit=1),
            Pin(num='24',name='PA1',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='PA2',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='PA3',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='28',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='29',name='PA4',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='PE4',func=pin_types.BIDIR,unit=1),
            Pin(num='30',name='PA5',func=pin_types.BIDIR,unit=1),
            Pin(num='31',name='PA6',func=pin_types.BIDIR,unit=1),
            Pin(num='32',name='PA7',func=pin_types.BIDIR,unit=1),
            Pin(num='33',name='PC4',func=pin_types.BIDIR,unit=1),
            Pin(num='34',name='PC5',func=pin_types.BIDIR,unit=1),
            Pin(num='35',name='PB0',func=pin_types.BIDIR,unit=1),
            Pin(num='36',name='PB1',func=pin_types.BIDIR,unit=1),
            Pin(num='37',name='PB2',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='PE7',func=pin_types.BIDIR,unit=1),
            Pin(num='39',name='PE8',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='PE5',func=pin_types.BIDIR,unit=1),
            Pin(num='40',name='PE9',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='PE10',func=pin_types.BIDIR,unit=1),
            Pin(num='42',name='PE11',func=pin_types.BIDIR,unit=1),
            Pin(num='43',name='PE12',func=pin_types.BIDIR,unit=1),
            Pin(num='44',name='PE13',func=pin_types.BIDIR,unit=1),
            Pin(num='45',name='PE14',func=pin_types.BIDIR,unit=1),
            Pin(num='46',name='PE15',func=pin_types.BIDIR,unit=1),
            Pin(num='47',name='PB10',func=pin_types.BIDIR,unit=1),
            Pin(num='48',name='PB11',func=pin_types.BIDIR,unit=1),
            Pin(num='49',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='5',name='PE6',func=pin_types.BIDIR,unit=1),
            Pin(num='51',name='PB12',func=pin_types.BIDIR,unit=1),
            Pin(num='52',name='PB13',func=pin_types.BIDIR,unit=1),
            Pin(num='53',name='PB14',func=pin_types.BIDIR,unit=1),
            Pin(num='54',name='PB15',func=pin_types.BIDIR,unit=1),
            Pin(num='55',name='PD8',func=pin_types.BIDIR,unit=1),
            Pin(num='56',name='PD9',func=pin_types.BIDIR,unit=1),
            Pin(num='57',name='PD10',func=pin_types.BIDIR,unit=1),
            Pin(num='58',name='PD11',func=pin_types.BIDIR,unit=1),
            Pin(num='59',name='PD12',func=pin_types.BIDIR,unit=1),
            Pin(num='60',name='PD13',func=pin_types.BIDIR,unit=1),
            Pin(num='61',name='PD14',func=pin_types.BIDIR,unit=1),
            Pin(num='62',name='PD15',func=pin_types.BIDIR,unit=1),
            Pin(num='63',name='PC6',func=pin_types.BIDIR,unit=1),
            Pin(num='64',name='PC7',func=pin_types.BIDIR,unit=1),
            Pin(num='65',name='PC8',func=pin_types.BIDIR,unit=1),
            Pin(num='66',name='PC9',func=pin_types.BIDIR,unit=1),
            Pin(num='67',name='PA8',func=pin_types.BIDIR,unit=1),
            Pin(num='68',name='PA9',func=pin_types.BIDIR,unit=1),
            Pin(num='69',name='PA10',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='PC13',func=pin_types.BIDIR,unit=1),
            Pin(num='70',name='PA11',func=pin_types.BIDIR,unit=1),
            Pin(num='71',name='PA12',func=pin_types.BIDIR,unit=1),
            Pin(num='72',name='SWDIO',func=pin_types.BIDIR,unit=1),
            Pin(num='73',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='74',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='75',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='76',name='SWCLK',func=pin_types.BIDIR,unit=1),
            Pin(num='77',name='PA15',func=pin_types.BIDIR,unit=1),
            Pin(num='78',name='PC10',func=pin_types.BIDIR,unit=1),
            Pin(num='79',name='PC11',func=pin_types.BIDIR,unit=1),
            Pin(num='8',name='PC14',func=pin_types.BIDIR,unit=1),
            Pin(num='80',name='PC12',func=pin_types.BIDIR,unit=1),
            Pin(num='81',name='PD0',func=pin_types.BIDIR,unit=1),
            Pin(num='82',name='PD1',func=pin_types.BIDIR,unit=1),
            Pin(num='83',name='PD2',func=pin_types.BIDIR,unit=1),
            Pin(num='84',name='PD3',func=pin_types.BIDIR,unit=1),
            Pin(num='85',name='PD4',func=pin_types.BIDIR,unit=1),
            Pin(num='86',name='PD5',func=pin_types.BIDIR,unit=1),
            Pin(num='87',name='PD6',func=pin_types.BIDIR,unit=1),
            Pin(num='88',name='PD7',func=pin_types.BIDIR,unit=1),
            Pin(num='89',name='PB3',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='PC15',func=pin_types.BIDIR,unit=1),
            Pin(num='90',name='PB4',func=pin_types.BIDIR,unit=1),
            Pin(num='91',name='PB5',func=pin_types.BIDIR,unit=1),
            Pin(num='92',name='PB6',func=pin_types.BIDIR,unit=1),
            Pin(num='93',name='PB7',func=pin_types.BIDIR,unit=1),
            Pin(num='94',name='BOOT0',func=pin_types.INPUT,unit=1),
            Pin(num='95',name='PB8',func=pin_types.BIDIR,unit=1),
            Pin(num='96',name='PB9',func=pin_types.BIDIR,unit=1),
            Pin(num='97',name='PE0',func=pin_types.BIDIR,unit=1),
            Pin(num='98',name='PE1',func=pin_types.BIDIR,unit=1),
            Pin(num='99',name='VSS',func=pin_types.PASSIVE,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'CH32V30xWxUx', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'CH32V30xWxUx'}), 'ref_prefix':'U', 'fplist':['Package_DFN_QFN:QFN-68-1EP_8x8mm_P0.4mm_EP6.4x6.4mm'], 'footprint':'Package_DFN_QFN:QFN-68-1EP_8x8mm_P0.4mm_EP6.4x6.4mm', 'keywords':'RISC-V WCH MCU', 'description':'', 'datasheet':'http://www.wch-ic.com/products/CH32V307.html?', 'search_text':'/usr/share/kicad/symbols/MCU_WCH_CH32V3.kicad_sym\nCH32V30xWxUx\n\nRISC-V WCH MCU', 'pins':[
            Pin(num='1',name='VBAT',func=pin_types.PWRIN),
            Pin(num='12',name='VSSA',func=pin_types.PWRIN),
            Pin(num='13',name='VDDA',func=pin_types.PWRIN),
            Pin(num='17',name='VIO',func=pin_types.PWRIN),
            Pin(num='18',name='VSS',func=pin_types.PWRIN),
            Pin(num='32',name='VDD',func=pin_types.PWRIN),
            Pin(num='63',name='BOOT0',func=pin_types.INPUT),
            Pin(num='10',name='PC2',func=pin_types.BIDIR,unit=1),
            Pin(num='11',name='PC3',func=pin_types.BIDIR,unit=1),
            Pin(num='14',name='PA0',func=pin_types.BIDIR,unit=1),
            Pin(num='15',name='PA1',func=pin_types.BIDIR,unit=1),
            Pin(num='16',name='PA2',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='PA3',func=pin_types.BIDIR,unit=1),
            Pin(num='2',name='PC13',func=pin_types.BIDIR,unit=1),
            Pin(num='20',name='PA4',func=pin_types.BIDIR,unit=1),
            Pin(num='21',name='PA5',func=pin_types.BIDIR,unit=1),
            Pin(num='22',name='PA6',func=pin_types.BIDIR,unit=1),
            Pin(num='23',name='PA7',func=pin_types.BIDIR,unit=1),
            Pin(num='24',name='PC4',func=pin_types.BIDIR,unit=1),
            Pin(num='25',name='PC5',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='PB0',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='PB1',func=pin_types.BIDIR,unit=1),
            Pin(num='28',name='PB2',func=pin_types.BIDIR,unit=1),
            Pin(num='29',name='PB10',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='PC14',func=pin_types.BIDIR,unit=1),
            Pin(num='30',name='PB11',func=pin_types.BIDIR,unit=1),
            Pin(num='31',name='VIO',func=pin_types.PASSIVE,unit=1),
            Pin(num='33',name='PD8',func=pin_types.BIDIR,unit=1),
            Pin(num='34',name='PD9',func=pin_types.BIDIR,unit=1),
            Pin(num='35',name='PB12',func=pin_types.BIDIR,unit=1),
            Pin(num='36',name='PB13',func=pin_types.BIDIR,unit=1),
            Pin(num='37',name='PB14',func=pin_types.BIDIR,unit=1),
            Pin(num='38',name='PB15',func=pin_types.BIDIR,unit=1),
            Pin(num='39',name='PC6',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='PC15',func=pin_types.BIDIR,unit=1),
            Pin(num='40',name='PC7',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='PC8',func=pin_types.BIDIR,unit=1),
            Pin(num='42',name='PC9',func=pin_types.BIDIR,unit=1),
            Pin(num='43',name='PA8',func=pin_types.BIDIR,unit=1),
            Pin(num='44',name='PA9',func=pin_types.BIDIR,unit=1),
            Pin(num='45',name='PA10',func=pin_types.BIDIR,unit=1),
            Pin(num='46',name='PA11',func=pin_types.BIDIR,unit=1),
            Pin(num='47',name='PA12',func=pin_types.BIDIR,unit=1),
            Pin(num='48',name='SWDIO',func=pin_types.BIDIR,unit=1),
            Pin(num='49',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='5',name='OSC_IN',func=pin_types.BIDIR,unit=1),
            Pin(num='50',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='51',name='VIO',func=pin_types.PASSIVE,unit=1),
            Pin(num='52',name='SWCLK',func=pin_types.BIDIR,unit=1),
            Pin(num='53',name='PA15',func=pin_types.BIDIR,unit=1),
            Pin(num='54',name='PC10',func=pin_types.BIDIR,unit=1),
            Pin(num='55',name='PC11',func=pin_types.BIDIR,unit=1),
            Pin(num='56',name='PC12',func=pin_types.BIDIR,unit=1),
            Pin(num='57',name='PD2',func=pin_types.BIDIR,unit=1),
            Pin(num='58',name='PB3',func=pin_types.BIDIR,unit=1),
            Pin(num='59',name='PB4',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='OSC_OUT',func=pin_types.BIDIR,unit=1),
            Pin(num='60',name='PB5',func=pin_types.BIDIR,unit=1),
            Pin(num='61',name='PB6',func=pin_types.BIDIR,unit=1),
            Pin(num='62',name='PB7',func=pin_types.BIDIR,unit=1),
            Pin(num='64',name='PB8',func=pin_types.BIDIR,unit=1),
            Pin(num='65',name='PB9',func=pin_types.BIDIR,unit=1),
            Pin(num='66',name='PE0',func=pin_types.BIDIR,unit=1),
            Pin(num='67',name='VIO',func=pin_types.PASSIVE,unit=1),
            Pin(num='68',name='VDD',func=pin_types.PASSIVE,unit=1),
            Pin(num='69',name='VSS',func=pin_types.PASSIVE,unit=1),
            Pin(num='7',name='~{RST}',func=pin_types.INPUT,unit=1),
            Pin(num='8',name='PC0',func=pin_types.BIDIR,unit=1),
            Pin(num='9',name='PC1',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] })])